package com.first.config.redis.lock;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ ElementType.PARAMETER })  
@Retention(RetentionPolicy.RUNTIME)  
@Documented
public @interface LockParameter {
	/**
	 * 含有成员变量的复杂对象中需要加锁的成员变量，如一个商品对象的商品ID
	 * 也就是复杂对象中的属性名称
	 * 比如User user 即为复杂对象  使用对象中的属性 username来作为sunKey
	 * isObject=false 时候该功能才起作用
	 * @return
	 */
	String field() default "";
	/**
	 * 是否是基本的简单属性  true表示是简单属性，false 表示是复杂对象
	 * true：表示 int，long，String，char 等基本数据类型
	 * false：表示对象模型 比如User
	 * @return
	 */
	boolean isSimple() default true;
}
